package com.flatsmap.util;

import static com.flatsmap.util.FlatsMapUtil.isNotEmpty;

import org.hibernate.criterion.Property;

import com.flatsmap.dto.PoiDTO;
import com.flatsmap.dto.SearchCriteria;

public class FlatsMapUtil {

	public static boolean isEmpty(String s){
		return s == null || s.equals("");
	}
	
	public static boolean isNotEmpty(String s){
		return s != null && !s.equals("");
	}
	
	public static boolean isEmpty(Integer i){
		return i == null || i.equals(-1);
	}
	
	public static boolean isNotEmpty(Integer i){
		return i != null && !i.equals(-1);
	}
	
	public static boolean isEmpty(Double d){
		return d == null || d.equals(-1.0);
	}
	
	public static boolean isNotEmpty(Double d){
		return d != null && !d.equals(-1.0);
	}
	
	public static boolean isEmpty(SearchCriteria criteria){
		if(isNotEmpty(criteria.getRegion()))
			return false;
		if(isNotEmpty(criteria.getStreet()))
			return false;
		if(isNotEmpty(criteria.getCity()))
			return false;
		if(isNotEmpty(criteria.getMaxFloor()))
			return false;
		if(isNotEmpty(criteria.getMinFloor()))
			return false;
		if(isNotEmpty(criteria.getMaxRoomNumber()))
			return false;
		if(isNotEmpty(criteria.getMinRoomNumber()))
			return false;
		if(isNotEmpty(criteria.getMaxPrice()))
			return false;
		if(isNotEmpty(criteria.getMinPrice()))
			return false;
		if(isNotEmpty(criteria.getMaxSquare()))
			return false;
		if(isNotEmpty(criteria.getMinSquare()))
			return false;
		return true;
	}
	
	public static SearchCriteria createMinMaxCriteria(PoiDTO min, PoiDTO max){
		SearchCriteria criteria = new SearchCriteria();
		criteria.setMaxFloor(max.getFloor());
		criteria.setMinFloor(min.getFloor());
		criteria.setMaxPrice(max.getPrice());
		criteria.setMinPrice(min.getPrice());
		criteria.setMaxRoomNumber(max.getRoomNumber());
		criteria.setMinRoomNumber(min.getRoomNumber());
		criteria.setMaxSquare(max.getSquare());
		criteria.setMinSquare(min.getSquare());
		return criteria;
	}
}
